<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*
		     箭头函数:函数简写方式
			 语法:
			 参数 => 函数体
			 
			 使用场景: 回调函数时
			 
			 参数:
			 1.没有参数或有多个参数时,要用()括起来
			   ()=>{}
			   (x,y)=>{}
			 2.只有一个参数时，()可以省略
			 
			 函数体:
			 1.有多条语句时,要用{}括起来
			   (x,y)=>{
				 语句1;
				 语句2;
			   }
			 2.只有一条语句时,且需要返回结果时,那么{}可以省略，return可以省略，结果会自动返回
			 
		
		
		    */
			// const arr = [1, 2, 3];
			// arr.forEach(function(val) {
			// 	console.log(val);
			// })
			// arr.forEach(val => console.log(val));

			/*
			  1.没有参数或有多个参数时,要用()括起来
			    ()=>{}
			    (x,y)=>{}
			
			*/

			let fn1 = function(x, y) {
				console.log("fn1...");
			}

			// fn1();

			let fn11 = (x, y) => console.log("fn11...");

			// fn11();


			//-----------2.只有一个参数时，()可以省略------------------------------------------------------------

			let fn2 = function(x) {
				console.log(x);
			}
			// fn2(6);

			let fn22 = x => console.log(x);

			// fn22(66);

			//-----------有多条语句时,要用{}括起来-----------------------------------------------------------------------
			let fn3 = function(x) {
				console.log(x);
				console.log("abc");
			}

			// fn3(6);

			let fn33 = x => {
				console.log(x);
				console.log("abc");
			}

			// fn33(66);

			//------------只有一条语句时,且需要返回结果时,那么{}可以省略，return可以省略，结果会自动返回-------------------------------------------------------------------------------------
			let fn4 = function(x) {
				return x + 1;
			}

			// console.log(fn4(6));//7

			let fn44 = x => x + 1;
			// console.log(fn44(6));


			setTimeout(() => {
				console.log("123");
				console.log(this);//window
			}, 2000);
		</script>
		<button>保存</button>
		<script type="text/javascript">
			//使用场景:回调函数
			var btn = document.querySelector("button");
			btn.addEventListener("click", () => {
				// console.log("abc");
				// console.log(this);//window
			})
		</script>
		<script type="text/javascript">
			//不适合使用的场景
			//1.对象的方法
			let stu = {
				name: "张三",
				// study: function() {
				// 	console.log(this.name + ",好好学习");
				// }
				study: () => {
					// console.log(this);//window
					// console.log(this.name + ",好好学习");
				}
			}

			stu.study();

			function Student(name) {
				this.name = name;
				this.study = function() {
					console.log(this.name + ",好好学习");
				}
			}
			let stu2 = new Student("李四");
			stu2.study();
		</script>
	</body>
</html>
